package com.mic.security.service;

import java.util.List;
import com.mic.core.model.critera.CriteraContext;
import com.mic.security.model.Role;
import com.mic.security.model.RoleSearchContext;

public interface RoleService {

	/**
	 * 是否存在，name字段唯一
	 * 
	 * @return
	 */
	public boolean isRoleExist(Role role);
	
	/**
	 * 根据id查找
	 * @param id
	 * @return
	 */
	public Role findRoleById(String id);
	
	/**
	 * 根据name查找
	 * 
	 * @param name
	 * @return
	 */
	public Role findRoleByName(String name);
	
	/**
	 * 根据查询条件计算结果总条数
	 * @param criteraContext
	 * @return
	 */
	public Integer countByCritera(CriteraContext criteraContext);
	
	
	/**
	 * 根据查询上下文获取结果（分页）
	 * @param searchContext
	 * @return
	 */
	public List<Role> listByCritera(RoleSearchContext searchContext);
	
	/**
	 * 所有
	 * 
	 * @return
	 */
	public List<Role> findAllRoles();

	/**
	 * 保存
	 * 
	 * @param role
	 */
	public void saveRole(Role role);
	
	/**
	 * 更新
	 * 
	 * @param role
	 */
	public void updateRole(Role role);

	/**
	 * 根据id删除
	 * 
	 * @param id
	 */
	public void deleteRoleById(String id);
	
}
